package com.jwsoft.manager.core.dao.model;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * 录取学生房产信息表
 *
 * @author wangtao
 * @since 2022-12-01
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("edu_student_house")
@Schema(name = "EduStudentHouse", title = "录取学生房产信息表", description = "录取学生房产信息表实体类")
public class EduStudentHouse extends Model<EduStudentHouse> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "student_house_id", type = IdType.ASSIGN_ID)
    private String studentHouseId;

    @Schema(name = "personId", title = "人员id")
    @TableField(value = "person_id")
    private Long personId;

    @Schema(name = "idcard", title = "学生身份证")
    @TableField(value = "idcard")
    private String idcard;

    @Schema(name = "fullName", title = "学生姓名")
    @TableField(value = "full_name")
    private String fullName;

    @Schema(name = "sex", title = "性别 1男 2 女")
    @TableField(value = "sex")
    private String sex;

    @Schema(name = "fatherId", title = "父亲id")
    @TableField(value = "father_id")
    private Long fatherId;

    @Schema(name = "fatherIdcard", title = "父亲身份证")
    @TableField(value = "father_idcard")
    private String fatherIdcard;

    @Schema(name = "fatherName", title = "父亲姓名")
    @TableField(value = "father_name")
    private String fatherName;

    @Schema(name = "motherId", title = "母亲id")
    @TableField(value = "mother_id")
    private Long motherId;

    @Schema(name = "motherIdcard", title = "母亲身份证")
    @TableField(value = "mother_idcard")
    private String motherIdcard;

    @Schema(name = "motherName", title = "母亲姓名")
    @TableField(value = "mother_name")
    private String motherName;

    @Schema(name = "schoolName", title = "学校名称")
    @TableField(value = "school_name")
    private String schoolName;

    @Schema(name = "schoolNature", title = "学校性质0.公办 1.民办")
    @TableField(value = "school_nature")
    private String schoolNature;

    @Schema(name = "schoolCategory", title = "学校类别")
    @TableField(value = "school_category")
    private String schoolCategory;

    @Schema(name = "year", title = "年份")
    @TableField(value = "Year")
    private Integer year;

    @Schema(name = "houseId", title = "房产id")
    @TableField(value = "house_id")
    private String houseId;

    @Schema(name = "address", title = "地址")
    @TableField(value = "address")
    private String address;

    @Schema(name = "registerDate", title = "登记日期")
    @TableField(value = "register_date")
    private Date registerDate;

    @Schema(name = "realProperty", title = "不动产权号")
    @TableField(value = "real_property")
    private String realProperty;

    @Schema(name = "realPropertyNum", title = "不动产单元号 国标")
    @TableField(value = "real_property_num")
    private String realPropertyNum;

    @Schema(name = "begDate", title = "土地使用开始日期")
    @TableField(value = "beg_date")
    private Date begDate;

    @Schema(name = "endDate", title = "土地使用结束日期")
    @TableField(value = "end_date")
    private Date endDate;

    @Schema(name = "status", title = "房产状态")
    @TableField(value = "status")
    private String status;

    @Schema(name = "yearLimit", title = "使用年限")
    @TableField(value = "year_limit")
    private Integer yearLimit;

    @Schema(name = "landCategories", title = "土地用途key")
    @TableField(value = "land_categories")
    private String landCategories;

    @Schema(name = "landCategoriesName", title = "土地用途value")
    @TableField(value = "land_categories_name")
    private String landCategoriesName;

    @Schema(name = "houseNature", title = "房屋性质key")
    @TableField(value = "house_nature")
    private String houseNature;

    @Schema(name = "houseNatureName", title = "房屋性质value")
    @TableField(value = "house_nature_name")
    private String houseNatureName;

    @Schema(name = "finalSchoolId", title = "最终录取学校")
    @TableField(value = "Final_School_ID")
    private String finalSchoolId;

    @Schema(name = "schollType", title = "学段1，初中2，小学3，幼儿园")
    @TableField(value = "Scholl_Type")
    private Integer schollType;

    @Schema(name = "行政区划")
    private String areaCode;

    @Override
    public Serializable pkVal() {
        return this.studentHouseId;
    }
}
